SpringBoot 当注解@Complent同时在abstract父类和子类上出现时,会是什么情况? |
您所在的位置:网站首页 › spring 抽象类 注入 › SpringBoot 当注解@Complent同时在abstract父类和子类上出现时,会是什么情况? |
SpringBoot 中当注解@Component同时在abstract父类和子类上出现时,会是什么情况?
springboot中常通过@Component来进行Bean的申明,Spring支持Bean之间的继承关系。但当父类是abstract时,情况会有所不同,下面通过实践来验证。 首先定义了一个abstract父类 Person . 并赋予了一些初始属性 public abstract class Person { /* * 年龄 */ public String age = "13"; public String name = "小王"; public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 定义一个子类 Student来继承该父类。 @Component(value = "student") public class Student extends Person{ private String id; private String className; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } }这个时候来看看具体的结果,发现生成的 Bean 是能继承abstract的属性的。 @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); // Object person = SpringUtil.getApplicationContext().getBean("person"); Object student = SpringUtil.getApplicationContext().getBean("student"); Object sex = SpringUtil.getApplicationContext().getBean("sex"); } }
Person类中加入引用: public abstract class Person { private String age = "13"; private String name = "小王"; @Autowired private Sex sex; ........... 省略 }
另外,当父类和子类同时拥有相同的静态变量或者静态方法时,是不会相互影响的,具体推荐看这一篇: 子类是否可以继承父类的static变量和方法 结语:水平有限,有不正之处望指正。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |